package tema7.ej13;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class Libro {
	public String isbn, titulo, categoria;

	public String getIsbn() {
		return isbn;
	}

	public String getTitulo() {
		return titulo;
	}

	public String getCategoria() {
		return categoria;
	}

	public String toString() {
		return isbn + " " + titulo + " " + categoria;
	}

	public Libro(String isbn, String titulo, String categoria) {
		super();
		this.isbn = isbn;
		this.titulo = titulo;
		this.categoria = categoria;
	}

	public static List<Libro> getTodosLibros() {
		Connection con = getConnection();

		PreparedStatement ps = null;
		ResultSet rs = null;
		String sentenciaSQL = "select * from libros";

		try {
			ps = con.prepareStatement(sentenciaSQL);
			rs = ps.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}

		List<Libro> libro = new ArrayList<Libro>();
		try {
			while (rs.next()) {
				String isbn = rs.getString("isbn");
				String titulo = rs.getString("titulo");
				String categoria = rs.getString("categoria");
				Libro l = new Libro(isbn, titulo, categoria);
				libro.add(l);
			}
		} catch (SQLException e) {
			
		}

		return libro;

	}

	public boolean insertarLibro() {
		Connection con = getConnection();
		PreparedStatement ps = null;
		try {
			String sentenciaSQL = "insert into libros(isbn,titulo,categoria) values (?,?,?)";
			ps = con.prepareStatement(sentenciaSQL);

			String isbn = this.isbn;
			String titulo = this.titulo;
			String categoria = this.categoria;

			ps.setString(1, isbn);
			ps.setString(2, titulo);
			ps.setString(3, categoria);
			ps.execute();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
		
	}

	public static Connection getConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		Connection con = null;
		try {
			con = DriverManager.getConnection("jdbc:mysql://localhost/test",
					"admin", "admin");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;
	}

}